perm filename OO2.FAI[CMS,LCS]1 blob
sn#166890 filedate 1975-07-17 generic text, type C, neo UTF8
COMMENT ⊗ VALID 00009 PAGES
C REC PAGE DESCRIPTION
C00001 00001
C00002 00002 TITLE OO
C00004 00003 SETFL: CAIE EN,672 :
C00006 00004 MVM: HRLI OU,400000(MA)
C00008 00005 BACK: HRRZI 6,-2(CX)
C00010 00006 FIXIT: SETOM OUTFLG
C00012 00007 GETO: MOVEM EN,TMP
C00014 00008 FILIN: OPEN DEVN
C00017 00009 INTRU: MOVE EN,JOBCNI
C00019 ENDMK
C⊗;
TITLE OO
EXTERNAL JOBAPR,JOBTPC,JOBCNI,JOBFF,JOBREL,JOBDDT,$I
FL←4 ↔ EN←7 ↔ TS←10 ↔ OU←11 ↔ CX←13
MA←14 ↔ N←15 ↔ MEM←1200
INT: HRRZI EN,INTRU
HRRZM EN,JOBAPR
HRRZI EN,MEM+1
HRRM EN,STAR
HRRZI EN,MEM+200
CORE EN,
DDJMP: JSR $I
RESET
SETZM PTNUM
MOVE EN,IPC
INTENB EN,
OUTSTR CRLF
STAR: HRRZI N,MEM+1
OUTSTR ASTR
HRRZI TS,(N)
IWAIT
INCHRS EN
JRST .-2
INLIN: HRRZM EN,(TS)
SETZM 1(TS)
ADDI TS,2
INCHRS EN
CAIA
JRST INLIN
SKIPL OU,LITFL
JRST LITIT
CAIN EN,642
JRST STLIT
TRNE EN,600
JRST SETFL
SUBI TS,4
MAIN: OUTSTR SPACE
HRRZI MA,1
HRRZI CX,(N)
JRST BGIN
SETFL: CAIE EN,672 ; :
CAIN EN,714 ; L
JRST FIXTS
CAIE EN,701 ; A
CAIN EN,722 ; R
JRST FIXTS
CAIN EN,677 ; ?
JRST DDJMP
CAIN EN,703 ; C
JRST PTCALL
CAIN EN,720 ; P
JRST PTBEG
CAIN EN,706 ; F
JRST FILIN
CAIN EN,717 ; O
JRST FILO
CAIN EN,713 ; K
JRST DDJMP+1
JRST STAR+3
FIXTS: SUBI TS,2
HRRZM EN,OUTFLG
OUTSTR CRLF
JRST MAIN
STLIT: IWAIT
INCHRS LITFL
JRST .-2
SUBI TS,2
JRST STAR+4
LITIT: CAIE EN,(OU)
JRST STAR+3
SETOM LITFL
JRST MAIN-2
MVM: HRLI OU,400000(MA)
HRRZI 6,2
JRST LMVM
LAEQ: HRRZI 6,2
CAIE OU,(MA)
ADDI 6,2
SUBI 5,2
HLL OU,(5)
LMVM: MOVEM OU,(5)
SETZM 1(5)
ADDI 5,2
SUBI TS,(6)
ADDI 6,(5)
HRLZI 6,(6)
HRRI 6,(5)
BLT 6,(TS)
JRST LKMO
FDEQ: MOVE 4,MEM(MA)
HRRZI 5,(N)
LKMO: CAMN 4,(5)
JRST EQU
ADIN: ADDI 5,2
CAIGE 5,(TS)
JRST LKMO
ADDI MA,2
BGIN: CAIGE MA,-MEM(N)
JRST FDEQ
HRRZI MA,-MEM(CX)
ADDI N,2
CAIGE N,(TS)
JRST FDEQ
JRST BACK
EQU: HRRZI OU,(MA)
CAILE TS,2(5)
CAIG N,MEM+2(MA)
JRST CKLA
MOVE 6,MEM+2(MA)
CAMN 6,2(5)
HRRI OU,2(MA)
CKLA: CAIL 5,2(N)
SKIPL 6,-2(5)
JRST .+3
CAIN MA,2(6)
JRST LAEQ
CAIE OU,(MA)
JRST MVM
SKIPGE 1(5)
JRST ADIN
HRLI OU,400001(OU)
AOJ OU,
MOVEM OU,1(5)
CAIGE CX,-2(TS)
JRST ADIN
BACK: HRRZI 6,-2(CX)
ADDI 6,2
SKIPGE 1(6)
JRST NEGA+1
SKIPGE OU,(6)
AOBJN OU,NEGA
HRRZI OU,-MEM(6)
HRLI OU,400000(OU)
NEGA: MOVEM OU,1(6)
CAIGE 6,-2(TS)
JRST BACK+1
CAIE TS,2(CX)
JRST NOT1
SUBI TS,2
MOVE EN,(TS)
SUB OU,ONEB
CAME OU,EN
CAIN CX,MEM(OU)
JRST NEW1
SKIPL FL,OUTFLG
AOBJN OU,FIXIT
HRRZI EN,MEM+1(OU)
AOBJN OU,GETO
NEW1: SKIPGE FL,OUTFLG
AOBJN OU,GETO
HRRZI OU,-MEM+1(CX)
HRLI OU,400000(OU)
JRST FIXIT-1
NOT1: HRRZI EN,-MEM-2(TS)
HRLI EN,400000-MEM(CX)
MOVE OU,EN
ADD OU,ONEB
SKIPGE FL,OUTFLG
JRST GETO
MOVEM EN,(TS)
MOVEM OU,1(TS)
HRRZI OU,-MEM+1(TS)
HRLI OU,400000(OU)
; CAIE FL,701
ADDI TS,2
FIXIT: SETOM OUTFLG
SKIPGE EN,TMP
JRST NSEEN
CKFLS: CAIN FL,701
JRST ADER
CAIN FL,714
JRST LITA
CAIN FL,722
JRST RPLACE
MOVEM OU,(EN)
JRST GETO
LITA: SUB OU,ONEB
MOVEM OU,(EN)
JRST GETO
NSEEN: MOVEM EN,(TS)
HRRZI EN,1(TS)
ADDI TS,2
JRST CKFLS
RPLACE: HRR OU,MEM(OU)
TLZ OU,400000
TRO OU,400000
MOVEM OU,(EN)
JRST GETO
ADER: MOVE 4,MEM-1(OU)
MOVEM 4,2(TS)
CAIE TS,1(OU)
JRST OLD1
SUBI TS,2
MOVE OU,(OU)
OLD1: MOVEM OU,3(TS)
MOVE 5,(EN)
MOVE 4,MEM-1(5)
MOVEM 4,(TS)
MOVEM 5,1(TS)
HRRZI OU,-MEM+2(TS)
HRLI OU,400000-MEM(TS)
MOVEM OU,4(TS)
AOBJP OU,
MOVEM OU,5(TS)
HRRZI OU,-MEM+5(TS)
HRLI OU,400000(OU)
MOVEM OU,(EN)
ADDI TS,6
GETO: MOVEM EN,TMP
HRRM TS,STAR
HRRZI MA,(TS)
HRLI MA,700
SKIPE PTNUM
HRLI MA,1100
ADDI TS,200
TLZN OU,400000
TRNN OU,400000
JRST GOUT
MOVE EN,OU
HRRZI 4,777775
JRST MKOUT
PUDO: HRLI OU,(4)
PUSH TS,OU
MOVE OU,EN
GOUT: HLRZ 4,OU
MOR: MOVE EN,MEM(4)
TLZE EN,400000
JRST PUDO
TRNN EN,400000
JRST DPCH
MKOUT: HLRZ 6,EN
HRLI EN,(EN)
TRZ EN,400000
MOVEM EN,MEM(6)
CAIA
DPCH: IDPB EN,MA
ADO: ADDI 4,2
CAIG 4,(OU)
JRST MOR
TLNN TS,777777
JRST TYOUT
POP TS,OU
HLRZ 4,OU
JRST ADO
TYOUT: HRRZI EN,15
IDPB EN,MA
HRRZI EN,12
IDPB EN,MA
SETZ EN,
IDPB EN,MA
SUBI TS,177
SKIPE PTNUM
JRST PTOUT
OUTSTR (TS)
JRST STAR
FILIN: OPEN DEVN
JRST ERRO
SETZM FNAME+3
LOOKUP FNAME
JRST ERRO
MOVE EN,INPO
SETZ TS,
INPUT EN
HRRZ EN,MEM
HRRZI N,MEM(EN)
HRRM N,STAR
CORE N,
JRST DDJMP
SUBI EN,200
JUMPLE EN,CLOZE
IORI EN,177
MOVNS EN
HRLZI EN,-1(EN)
HRRI EN,MEM+177
INPUT EN
JRST CLOZE
ERRO: OUTSTR QMARK
JRST CLOZE
FILO: SUBI N,MEM
HRRZM N,MEM
IORI N,177
MOVNS N
HRLZI N,-1(N)
HRRI N,MEM-1
OPEN DEVN
JRST ERRO
SETZM FNAME+3
ENTER FNAME
JRST ERRO
SETZ 16,
OUTPUT N
CLOZE: RELEAS
JRST STAR-1
INTRU: MOVE EN,JOBCNI
TLNE EN,20000
DISMIS
IMSKCL 1,EN
MOVE OU,JOBTPC
TRNE EN,20000
JRST CORUP
CAIE OU,.+7
MOVEM OU,IPC+1
UWAIT
DEBREAK
HRRZ 1,PTNUM
POLO: PTOCNT 1
SKIPG 2
INTJEN IPC
HRRZI 2,PTNUM+2
PTRDS 1
OUTSTR (2)
JRST POLO
CORUP: SOJ OU,
MOVEM OU,IPC+1
UWAIT
DEBREAK
HRRZ 1,JOBREL
AOJ 1,
CORE 1,
JRST DDJMP
INTJEN IPC
PTBEG: SKIPN PTNUM
PTYGET EN
JRST STAR
MOVEM EN,PTNUM
HRRZI TS,5
PTJOBX EN
JRST STAR
JRST STAR-1
PTCALL: HRRZI TS,CALLC
PTOUT: MOVE EN,PTNUM
PTWRS9 EN
JRST STAR
IPC: 21000,,20000
0
DEVN: 17
SIXBIT/DSK/
0
FNAME: SIXBIT/ALY/
SIXBIT/OOP/
BLOCK 2
INPO: IOWD 200,MEM
QMARK: 45767706424
CALLC: 600600,,0
CRLF: 64240,,0
ASTR: ASCIZ/*/
SPACE: ASCIZ/ /
OUTFLG: -1 ↔ LITFL: -1
ONEB: 1,,1 ↔ TMP: 0
PTNUM: 0 ↔ BLOCK 400
END INT